package com.play2gether;

import android.content.Context;
import android.os.AsyncTask;
import android.util.Log;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;

/**
 * Created by Raul on 22/03/14.
 */
public class httpHandler {

    String posturl = new String();
    String texto = new String();
    String datosRegistro[];

    //private static final String TAG="miDebug";

    public String post(String posturl,String[] d){
        this.posturl = posturl;
        //datos = new String[2];
        datosRegistro = d;
        //Log.d(TAG,d[0]);
        //Log.d(TAG,d[1]);

        try                { new Tarea1().execute(posturl,texto);  }
        catch (Exception e){ e.printStackTrace(); texto="Error";
                            // loginActivity.t.setText("Error!");
        }
        String t = texto;
        return t;
    }

    private class Tarea1 extends AsyncTask<String, Void, String> {
        //TextView, es el primer dato que se le pasa a doInBackground.
        //El segundo que está en void es el dato que se va actualizar cada vez que se llame al metodo onProgressUpdate(No sobreescrito) para mostrar un mensaje de se está cargando o mostrar una barra de carta
        //El tercero es lo que nos va a devolver. En este caso un String.
        String posturl;

        protected void onPreExecute(){ //Aquí se ponen lo que quiero que haga mientras se cargan los datos. Se ejecuta antes de el doInBackground
        }

        @Override
        protected String doInBackground(String... params) { // Segunda función. Nos devuelve el parámetro que viene del post se modificará todo lo gráfico que se hace en primer plano.
            this.posturl = params[0];
            String contenido = getDatos();
            return contenido;
        }
        protected void onPostExecute(String result){
           // loginActivity.t.setText(result);
            //loginActivity.t.setText(result);



        }
        public String getDatos() {
            HttpClient cliente = new DefaultHttpClient();
            HttpPost htppost = new HttpPost(posturl);
            //BufferedReader bfr;
            //String resultado = "Fallo";

            //Añadir parametros
            List<NameValuePair> params = new ArrayList<NameValuePair>();
            params.add(new BasicNameValuePair("correo",datosRegistro[0]));
            params.add(new BasicNameValuePair("password",datosRegistro[1]));
            String text="Error";
            try {
                htppost.setEntity(new UrlEncodedFormEntity(params));
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }

            try {
                HttpResponse respuesta = cliente.execute(htppost);
                HttpEntity ent = respuesta.getEntity();
                //bfr = new BufferedReader(new InputStreamReader(respuesta.getEntity().getContent()));
                //StringBuffer stb = new StringBuffer("");
                //String linea = "";
                //String NL = " ";
                //while ((linea = bfr.readLine()) != null) {
                //    stb.append(linea + NL);
                //}
                //bfr.close();
                //resultado = stb.toString();

                text = EntityUtils.toString(ent);
            } catch (IllegalStateException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return text;
        }


    }



}
